The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Many database systems allow storage and querying of XML data. Though there are many evolving standards for querying XML, many of them include some variation of XPath. However, database systems are usually not optimized to handle XPath queries, and the query performance of the database systems leaves much to be desired. For example, a database system may satisfy an XPath query by performing a full scan of all documents. while a full scan of all documents can be used to satisfy all XPath queries, the implementation would be very slow due to the lack of indexes.
One solution to efficiently satisfy XPath queries involves providing indexes built over data stored as XML data (referred to herein as an “XML indexes”). Indexing information about XML documents allows for more efficient evaluating of Xpath expressions, by knowing how to specifically identify and locate elements in XML documents.
When the user submits a query involving XPaths (as predicate or fragment identifier), the user XPath is decomposed into a SQL query that accesses the XML index. Then the generated query typically performs a set of lookups using the XML index and merges their results appropriately.
As XML indexes are widely used in database systems for improving query prefomance the maintenance and overhead associated with the XML indexes is becoming increasing costly. Thus, there is always a trade-off between the index-maintenance overhead and the value added by the index. Therefore, there is a need to reduce the XML index maintenance overhead in order to effectively improve query performance.